package cn.iocoder.yudao.module.bill.dal.dataobject.bill;

import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 账单信息 DO
 *
 * @author mmciel
 */
@TableName("tb_bill")
@KeySequence("tb_bill_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BillDO extends BaseDO {

    /**
     * 唯一ID
     */
    @TableId
    private Long id;
    /**
     * 账单标题
     */
    private String billTitle;
    /**
     * 账单备注
     */
    private String billRemark;
    /**
     * 账单金额
     */
    private BigDecimal billAmount;
    /**
     * 收支类型
     *
     * 枚举 {@link TODO bill_amount_type 对应的类}
     */
    private String amountType;
    /**
     * 变动账户
     */
    private Long accountId;
    /**
     * 一级分类
     */
    private String cate1;
    /**
     * 二级分类
     */
    private String cate2;
    /**
     * 三级分类
     */
    private String cate3;
    /**
     * 账单标签
     */
    private String tags;
    /**
     * 账单所属模板
     */
    private String templateId;
    /**
     * 账单类型
     *
     * 枚举 {@link TODO bill_type 对应的类}
     */
    private String billType;
    /**
     * 账单阶段
     *
     * 枚举 {@link TODO bill_stage 对应的类}
     */
    private String billStage;
    /**
     * 账单状态
     *
     * 枚举 {@link TODO bill_status 对应的类}
     */
    private String billStatus;
    /**
     * 转账去向
     */
    private Long transAccountId;
    /**
     * 账单时间
     */
    private LocalDateTime billTime;
    /**
     * 外部说明
     */
    private String extRemark;
    /**
     * 外部付款账户
     */
    private String extFromAccount;
    /**
     * 外部付款人
     */
    private String extFromOwner;
    /**
     * 外部收款账户
     */
    private String extToAccount;
    /**
     * 外部收款人
     */
    private String extToOwner;
    /**
     * 补充信息
     */
    private String extInfo;
    /**
     * 账单来源
     */
    private String extBillSource;
    /**
     * 外部参数
     */
    private String extParam;
    /**
     * 排序号
     */
    private Integer orderNum;
    /**
     * 是否为资产
     *
     * 枚举 {@link TODO bill_yes_or_no 对应的类}
     */
    private Integer hasProperty;
    /**
     * 资产名称
     */
    private String propertyName;
    /**
     * 资产盘点时间
     */
    private LocalDateTime propertyCheckTime;
    /**
     * 资产类别
     *
     * 枚举 {@link TODO property_cate 对应的类}
     */
    private String propertyCate;
    /**
     * 资产价值
     */
    private BigDecimal propertyValue;
    /**
     * 资产参数
     */
    private String propertyParam;
    /**
     * 资产备注
     */
    private String propertyRemark;
    /**
     * 资产状态
     *
     * 枚举 {@link TODO property_status 对应的类}
     */
    private String propertyStatus;

}